function Base () {
    this.init = function() {
        $.ajaxSetup({
            type: "GET" 
            ,dataType: "html"
        })

        return this;
    }    

    this.dialog = function (args){
        if (args.show) {
            if (args.msg) {
                $("#container_dialog p").html(args.msg)
            }
            $("#container_dialog").show()
        } else {
            $("#container_dialog").hide()
        }
    }

    this.__add_ie_rack__ = function() {
        if($.browser.msie){
            $("body").addClass("ie")
            if($.browser.version == 6){
                $("body").addClass("ie7")
            } else if ($.browser.version == 7){
                $("body").addClass("ie7")
            }
        }
    }

    this.__add_groups_events__ = function() {
        $("input.groups").change(function () {
            if ($(this).is(":checked")) {
                $("fieldset input",$(this).parent()).attr("checked","checked")
                $("fieldset",$(this).parent()).slideUp()
            } else {
                $("fieldset input",$(this).parent()).attr("checked","")
                $("fieldset",$(this).parent()).slideDown()
            }
        })
        $("fieldset.groups input").change(function () {
            if ($(this).is(":checked")) {
                if ($("input",$(this).parent().parent()).length == $("input:checked",$(this).parent().parent()).length) {
                    $("input.groups",$(this).parent().parent().parent().parent()).attr("checked","checked")
                    $("fieldset",$(this).parent().parent().parent().parent()).slideUp()
                }
            } else {
                $("input.groups",$(this).parent().parent().parent().parent()).attr("checked","")
            }
        })
    }

    this.onload = function() {
        this.__add_ie_rack__()
        this.__add_groups_events__()
        $("#container_dialog").ajaxStart(function () {
            page.dialog({
                "show": true,
                "msg": "Caregando..."
            })
        })
        $("#container_dialog").ajaxStop(function () {
            page.dialog({
                "show": false
            })
        })

        if (!location.href.match(/search/)) {
          // seleciona todos as cameras se nenhuma busca foi realizada
          $("input.groups").each(function () {
              $(this).trigger("click")
              $("fieldset input", $(this).parent()).trigger("click")
          })
        }

        // executa o evento se a view marcou algum input
        $("fieldset.groups input").each(function () {
            if ($(this).is(":checked")) {
                if ($("input",$(this).parent().parent()).length == $("input:checked",$(this).parent().parent()).length) {
                    $("input.groups",$(this).parent().parent().parent().parent()).attr("checked","checked")
                    $("fieldset",$(this).parent().parent().parent().parent()).hide()
                }
            } else {
                $("input.groups",$(this).parent().parent().parent().parent()).attr("checked","")
            }
        })

        if (location.href.match(/search/)) {
          // vai para os resultados da pesquisa se a busca fi realizada
          // (esse codigo deve ser executado apos as os eventos e triggers acima forem concluidos)
          window.scrollTo(document.body.scrollLeft,$('#content').offset().top - 10);
        }
    }
}


var page = new Base().init()
function page_ready () {
    page.onload()
}

